package com.ssy.lingxi.order.service.base;

import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.entity.PlatformPaymentDO;
import com.ssy.lingxi.order.model.vo.platform.request.PlatformPaymentPayTypeVO;
import com.ssy.lingxi.order.model.vo.platform.response.PlatformPaymentPayTypeDetailVO;

import java.util.List;

/**
 * 平台后台 - 会员支付策略配置 - 关联的支付方式与渠道相关接口
 * @author 万宁
 * @version 2.0.0
 * @date 2021-08-11
 */
public interface IBasePlatformPaymentTypeService {
    /**
     * 校验、保存会员支付策略关联的支付方式、支付渠道
     * @param platformPayment 会员支付策略
     * @param payTypes 支付方式与渠道
     * @param isCreate 是否新增， true-新增，false-更新
     * @return 操作结果
     */
    Wrapper<Void> checkPayTypes(PlatformPaymentDO platformPayment, List<PlatformPaymentPayTypeVO> payTypes, boolean isCreate);

    /**
     * 查询会员支付策略关联的支付方式、支付渠道
     * @param platformPayment 会员支付策略
     * @return 查询结果
     */
    List<PlatformPaymentPayTypeDetailVO> findPayTypes(PlatformPaymentDO platformPayment);

    /**
     * 查询会员线下支付的支付策略的资金归集模式
     * @param memberId   会员id
     * @param roleId     角色id
     * @return
     */
    Integer getFundModeByMemberIdAndRoleId(Long memberId, Long roleId);
}
